Various network protocols are used to provide networking services to devices. For example, DHCP (Dynamic Host Configuration Protocol) allows the dynamic assignment of IP (Internet Protocol) addresses to hosts. Network protocols such as DHCP are often implemented using a client-server model in which protocol clients request services from protocol servers, which in turn provide the requested services in accordance with the network protocol. For example, in DHCP, a DHCP client may request an IP address from a DHCP server. In response, the DHCP server sends a reply assigning an IP address to the requesting DHCP client. Thereafter, the DHCP client uses the assigned IP address in a manner consistent with the protocol.
Protocol servers that provide networking services are vulnerable to various attacks. A denial of service attack may involve a user simulating a large number of protocol clients in order to exhaust the server's available pool of resources. A denial of service attack may also involve a user sending a high rate of client requests to the protocol server in order to inhibit the ability of the protocol server to respond to legitimate client requests.
Similarly, some users may falsify or steal protocol information in order to perform undesirable activity via a network. For example, a user may simulate a protocol server and send fake protocol responses. These responses may corrupt legitimate network operation. Similarly, a user may snoop a response sent by a legitimate protocol server to a protocol client and use the network services being provided in those responses. For example, if a DHCP response assigning an IP address to a client is intercepted, the intercepting user may deceptively pretend to be the client by using the IP address obtained from the DHCP response. As these examples show, network protocols may experience various security problems that result from misuse of the network protocol and/or attacks on protocol servers.